from datetime import datetime


def string_to_timestamp(_date_string: str, _format: str = "%Y-%m-%d"):
    """
    将日期时间字符串转换为时间戳（整数形式）
    :param _format:
    :param _date_string: 日期时间字符串，格式为"YYYY-MM-DD"
    :return: 时间戳
    """
    # 将日期时间字符串转换为datetime对象
    date_time_obj = datetime.strptime(_date_string, _format)
    # 将datetime对象转换为时间戳（整数形式）
    _timestamp = int(date_time_obj.timestamp())
    return _timestamp


def calculate_timestamps(days: int, is_int=False):
    """
    计算指定天数前的时间戳。
    :param days: 与当前时间相隔的天数，正数表示未来的时间，负数表示过去的时间。
    :param is_int: 返回的时间戳是否应该是整数。默认为False，即返回浮点数时间戳。
    :return: 如果is_int为True，则返回整型时间戳；否则返回浮点型时间戳。
    """
    # 获取当前系统时间戳
    current_timestamp = datetime.now().timestamp()

    # 计算指定天数前的时间戳
    target_timestamp = current_timestamp - days * 24 * 60 * 60  # 将天数转换为秒数

    return int(target_timestamp) if is_int else target_timestamp
